﻿function _Inscrito() {

    this.PreInit = function () {
        var _parent = this;

        _parent._getCont().find("#nuevo").click(function () {
            _parent.Form();
        });


        _parent.__Filtrar();
        _parent._Eliminar();
        _parent._Editar();
    }

    this.__Filtrar = function () {
        var _parent = this;

        _parent._getContToolList().submit(function () {
            return false;
        });

        _parent._getContToolList().off("click", "#limpiarBusqueda");
        _parent._getContToolList().on("click", "#limpiarBusqueda", function (event) {
            _parent.__LimpiarBusqueda();
            _parent.__ListarTabla();
        });

        _parent._getContToolList().off("click", "#buscar");
        _parent._getContToolList().on("click", "#buscar", function (event) {
            _parent.__ListarTabla();
        });

        _parent._getContToolList().off("keypress", "#nombrecompleto");
        _parent._getContToolList().on("keypress", "#nombrecompleto", function (event) {
            if (event.which == 13) {
                _parent.__ListarTabla();
            }
        });
    }

    this.__ListarTabla = function () {
        var _parent = this;
        _parent.__LimpiarPaginado();
        _parent.__LimpiarOrdenamiento();
        _parent.__VariableFormList();
        _parent.List();
    }

    this.__VariableFormList = function () {
        var _parent = this;
        var contOrigen = _parent._getContToolList().find("#_Parametros");
        var contFin = _parent._ContList.find("#_Parametros");

        _parent.__EnviarValores(contOrigen, contFin);
    };


    //Despues de cargar el formulario
    this._PostForm = function () {
        var _parent = this;
        _parent.ValidacionFormatoCamposForm();
        _parent._CargarEventosForm();
    };

    this.ValidacionFormatoCamposForm = function () {
        var _parent = this;
        //Formato
        _parent.ConvertFechaCombos(_parent._getForm().find("#fechanac"), "dd/mm/AAAA", "dd/mm/AAAA");
        _parent.StyleInputFile(_parent._getForm().find("#imagen"));
        
        //Validaciones
        _parent.__ValidarCampos(_parent._getForm(), "validation");
    };

    /**
    Carga de eventos
    */
    this._CargarEventosForm = function () {

        var _parent = this;

        //        _parent.StyleInputFile(_parent._getForm().find("#Clie_GradoBachiller"));

        //        _parent._ValidacionExtensionArchivo(
        //            _parent._getForm().find("#Clie_GradoBachiller")
        //            , ["jpeg", "png", "jpg", "doc", "docx", "pdf"]
        //            , "Formato de archivo incorrecto para el grado de bachiller"
        //            , "Los formatos permitidos son jpg, png, doc, docx y pdf"
        //            );

        

        //Agregan al evento click el submit del formulario
        _parent._getContForm().find("#aceptar").click(function () {

            //Validando los datos
            if (!_parent._getForm().valid()) {
                return false;
            }
            _parent._DisabledBotonSubmit($(this));
            _parent._getForm().submit();
        });

        _parent._getForm().submit(function () {
            _parent._getForm().ajaxSubmit({
                dataType: 'json',
                type: 'post',
                success: function (responseText, statusText, xhr, $form) {

                    var parametros = {
                        exito:
                                {
                                    titulo: "Registro grabado",
                                    descripcion: "El registro fue grabado",
                                    funcion: function () {
                                        _parent._getContForm().modal('hide');
                                        if (responseText.EsNuevo) {
                                            _parent.__LimpiarBusqueda();
                                        }
                                        _parent.List({ idregistro: responseText.idregistro });
                                    }
                                },
                        error:
                                {
                                    titulo: "Error al registrar",
                                    descripcion: responseText.mensaje,
                                    funcion: function () {

                                    }
                                }
                    };

                    _parent._ProcesarResultado(responseText, parametros);
                }
            });
            return false;
        });
    };

    /**
    Editar el registro
    */
    this._Editar = function () {

        var _parent = this;

        _parent._getContList().off('click', '.editar');
        _parent._getContList().on('click', '.editar', function (e) {
            e.preventDefault();
            var obj = $(this);

            _parent.Form(
                {
                    id: obj.attr('data-id')
                }
            )
        });
    };


    //Eliminar un registro
    this._Eliminar = function () {
        var _parent = this;

        _parent._getContList().off('click', '.eliminar');
        _parent._getContList().on('click', '.eliminar', function (e) {
            e.preventDefault();
            var obj = $(this);

            var confirmacion = _parent._MensajeConfirmacion();

            confirmacion.yes = function () {
                jQuery.post(URL_PAGE + "Administracion/Cliente/Eliminar",
                                         {
                                             id: obj.attr('data-id')
                                         },
                             function (responseText) {


                                 var parametros = {
                                     exito:
                                    {
                                        titulo: "Registro eliminado",
                                        descripcion: "El registro fue eliminado correctamente",
                                        funcion: function () {
                                            confirmacion.getModal.modal('hide');
                                            _parent.List();
                                        }
                                    },
                                     error:
                                    {
                                        titulo: "Error al eliminar",
                                        descripcion: responseText.mensaje,
                                        funcion: function () {
                                            return true;
                                        }
                                    },

                                     advertencia:
                                    {
                                        titulo: responseText.tipomensaje,
                                        descripcion: responseText.mensaje,
                                        funcion: function () {
                                            confirmacion.getModal.modal('hide');
                                            _parent.List();
                                        }
                                    }
                                 };
                                 _parent._ProcesarResultado(responseText, parametros);

                             }
                   , "json");
            };
            confirmacion.modal();
        });
    }
}